/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import * as React from "react";
import { MoveableManagerInterface } from "react-moveable";

export interface DimensionViewableProps {
	dimensionViewable?: boolean;
}
export const DimensionViewable = {
	name: "dimensionViewable",
	props: {
		dimensionViewable: Boolean,
	},
	events: {},
	render(moveable: MoveableManagerInterface) {
		const { zoom = 0 } = moveable.props;
		const rect = moveable.getRect();

		return (
			<div
				key="dimension-viewer"
				className="solid-view-dimension"
				style={{
					left: `${rect.width / 2}px`,
					top: `${rect.height}px`,
					transform: `translate(-50%, ${20 * zoom}px) scale(${zoom})`,
				}}
			>
				{Math.round(rect.offsetWidth)} x {Math.round(rect.offsetHeight)}
			</div>
		);
	},
} as const;
